package com.example.dbsample.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface StopWatchPrint {
    /**
     * 计时任务名称前缀 默认空
     */
    String value() default "";

    /**
     * 是否打印详细信息 默认不打印详情
     */
    boolean isPrint() default false;

    /**
     * 详细信息的统计时间单位 默认毫秒
     */
    TimeUnit timeUnit() default  TimeUnit.MILLISECONDS;

    /**
     * 明细打印阈值 默认打印耗时占比 > 1% 打印开关关闭时无论是否超过阈值都不打印
     */
    double printPercent() default 0.0;

    long ignoreInvokeTime() default 0;

    double ignorePercent() default 0.0;
}
